#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>

int main(int argc, char const *argv[])
{
    printf("mian进程(%d)开始\n", getpid());

    int value = 100;
    pid_t pid = fork();
    printf("fork之后 \n");
    if (pid == 0)   // 子进程
    {
        value--;
        printf("子进程(%d)开始, 父进程id: %d, value=%d,value的地址：%p \n", getpid(), getppid(), value, &value);
        sleep(3);
    }
    else if (pid > 0)   // 父进程
    {
        value++;
        printf("父进程(%d)继续, 子进程id: %d, value=%d,value的地址：%p \n", getpid(), pid, value, &value);
        sleep(1);
    }
    else    // fork失败
    {
        printf("fork失败\n");
        return -1;
    }

    printf("进程(%d)结束\n", getpid());
        
    return 0;
}
